草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 一次加和乘 x*y+z 的 cmath 函数

cmath库中是否有函数给定3个数字x、y和z返回x*y+z? 最佳答案 fma代表FusedMultiplyAdd在C99和C++11中引入:#include#includeintmain(){assert(std::fabs(std::fma(2.0,3.0,4.0)-(2.0*3.0+4.0))可能的理由:IEEE754-2008似乎增加了对该操作的支持,要求它通过一次舍入而不是两次舍入来完成。感谢@Lưu在评论中提出。一些流行的架构,例如ARMandx86有一个周期的fma指令,所以理论上arch优化的编译器/标准库可以使用

c++ - 字符常量和函数名的 sizeof() 背后的逻辑

这个问题在这里已经有了答案:Sizeofcharacter('a')inC/C++(4个答案)WhyareCcharacterliteralsintsinsteadofchars?(11个答案)关闭9年前。在C中的代码如下:#includeintmain(){charc='a';printf("%d%d",sizeof(c),sizeof('a'));return0;}产生结果1和4?请解释一下逻辑?此外,为什么sizeof(main())的结果是4而sizeof(main)的结果是1:#includeintmain(){printf("%d%d\n",sizeof(main),siz

c++ - 将 defined(X) 返回为 true 或 false 的宏

我想要一系列宏来替换下面的代码#ifdefFOOreturntrue;#elsereturnfalse;#endif用类似的东西returnMAGICLY_EXPANDING_IFDEFINED_MACRO(FOO);您可以猜到,有很多FOO,足以将4行缩减为1行会很酷。但实际上它会用一行替换一个怪物switch语句。 最佳答案 在C++中,defined的行为仅针对条件包含(#if和#elif)指定。所以你不能以任何其他方式使用它。(相关规则见标准16.1节)但是,如果你想检测具体是#define到空字符串的宏,你不需要defin

c++ - 如何读取/重定向 dos 命令的输出到 C/C++ 中的程序变量?

我想从我的程序运行一个dos命令,例如“dir”命令。我正在这样做,system("dir");有什么方法可以将该命令的输出直接读取到程序变量中吗?我们总是可以将输出重定向到一个文件,然后读取该文件,方法是system("dir>command.out");然后读取command.out文件。但是我们如何才能直接执行而不是重定向到文件然后读取呢? 最佳答案 你不能将它重定向到一个变量,但你可以做一个类似于管道在Unix中用于链接命令的方式的技巧。调用CreateProcess(),并在STARTUPINFO::dwFlags中向其传

c++ - 在 C 或 C++ 中创建目录

如何用C代码创建一个目录(除了fork和使用mkdir的方法)?有没有类似dirent.h的东西?dirent.h只允许读取目录。(不使用外部库) 最佳答案 使用mkdirfunction.#include#includeintmkdir(constchar*pathname,mode_tmode); 关于c++-在C或C++中创建目录,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

c++ - 提取十六进制数的 'parts'

我想编写一个函数getColor(),它允许我提取输入为long的十六进制数的部分详情如下://prototypeanddeclarationsenumColor{Red,Blue,Green};intgetColor(constlonghexvalue,enumColor);//definition(pseudocode)intgetColor(constlonghexvalue,enumColor){switch(Color){caseRed:;//returntheLEFTmostvalue(i.e.returnintvalueofxABifinputwas'xABCDEF')b

c++ - 分析永不退出的基于 C 或 C++ 的应用程序

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我对分析应用程序有一点疑问,这些应用程序在我们手动重启机器之前永远不会退出。我使用了像valgrind这样的工具,它讨论了内存泄漏或任何应用程序在一段时间后退出的膨胀。但是否有任何工具可用于了解应用程序在不同阶段产生的内存消耗、膨胀、开销(如果可能)?注意:我更想了解不退出的应用程序...如果应用程序退出,我可以使用valgrind等工具..

c++ - 流式文件增量编码/解码

这就是问题所在-我想在服务器上生成二进制文件(大小>1MB)的增量,并通过HTTP将增量发送到内存受限(RAM低且无动态内存)的嵌入式设备。由于通过线路传输数据所涉及的高成本,因此首选增量(而不是从服务器发送完整的二进制文件)。问题是,嵌入式设备无法解码增量并在内存中创建新文件的内容。我研究了各种二进制增量编码/解码算法,如bsdiff、VCDiff等,但无法找到支持流式传输的库。也许,与其问是否有合适的库,不如问我是否可以采用替代方法来解决原始问题(通过网络发送最少的数据)?如果有合适的增量库支持流解码(用C或C++编写,不使用动态内存),那肯定会有所帮助。

c++ - 在已编译的 C 或 C++ 代码中加密密码

我知道如何在终端中使用GCC和CC编译C和C++源文件,但是我想知道在编译后在这些文件中包含密码是否安全。例如..我检查用户输入的特定密码,例如123,但编译的C/C++程序似乎可以被反编译。有没有办法编译C/C++源文件,同时完全隐藏源代码……如果没有,谁能提供一个加密输入的小例子,然后检查密码,例如:(SHA1,MD5) 最佳答案 不,您不能在源文件中安全地包含密码。可执行文件中的字符串是纯文本,任何人只要有文本编辑器就可以轻松查看您的密码。一种不太安全但会践踏某些人的方法是存储加密字符串。所以,基本上:enc="03ac674

c++ - pthread_join() 是否允许调用线程继续执行?

编辑:我错误地假设线程实际上是在pthread_create上开始运行时才在pthread_join上运行。我正在学习使用Posix线程,我读过:pthread_join()-等待线程终止所以,在代码示例中,main的exit(0)直到两个启动的线程都结束才到达。但是在第一次调用pthread_join()之后,main继续执行,因为第二次调用pthread_join()实际运行了,并且打印了中间的消息。那怎么样?main是否在两个线程都未完成时继续执行?还是不是?我知道这不是一种可靠的测试方法,但是第二条测试消息总是在两个线程都完成后打印出来,无论循环有多长。(至少在我尝试时在我的机